package org.jeecg.modules.oms.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import org.jeecg.modules.oms.entity.ProductSalesOrderTransaction;

/**
 * 成品销售订单交易记录服务接口
 */
public interface IProductSalesOrderTransactionService extends IService<ProductSalesOrderTransaction> {

    /**
     * 根据订单ID查询交易记录
     *
     * @param orderId 订单ID
     * @return 交易记录列表
     */
    List<ProductSalesOrderTransaction> getTransactionListByOrderId(String orderId);
    
    /**
     * 分页查询交易记录
     *
     * @param page 分页参数
     * @param transaction 查询条件
     * @return 交易记录分页列表
     */
    IPage<ProductSalesOrderTransaction> getTransactionPageList(Page<ProductSalesOrderTransaction> page, ProductSalesOrderTransaction transaction);
    
    /**
     * 根据订单ID删除交易记录
     *
     * @param orderId 订单ID
     * @return 是否成功
     */
    boolean deleteTransactionByOrderId(String orderId);
    
    /**
     * 添加交易记录
     *
     * @param transaction 交易记录
     * @return 是否成功
     */
    boolean addTransaction(ProductSalesOrderTransaction transaction);

    /**
     * 编辑交易记录
     *
     * @param transaction 交易记录
     * @return 是否成功
     */
    boolean editTransaction(ProductSalesOrderTransaction transaction);

    /**
     * 根据订单ID查询交易记录列表
     * @param orderId 订单ID
     * @return 交易记录列表
     */
    List<ProductSalesOrderTransaction> getTransactionByOrderId(String orderId);
    
    /**
     * 根据订单ID分页查询交易记录
     * @param page 分页参数
     * @param orderId 订单ID
     * @return 分页交易记录
     */
    IPage<ProductSalesOrderTransaction> getTransactionPageByOrderId(Page<ProductSalesOrderTransaction> page, String orderId);
} 